<?php
class APPAlipay{
	public $notify_url   = '';//异步处理地址
	public $return_url   = '';//同步处理地址
	public $show_url     = '';//商品展示地址
	public $seller_email = 'pay@qingtajiao.com';//收款支付宝账号
	public $partner      = '2088021075351093';//合作身份者id
	public $key          = 't38pd2dfva3nmlbtp8k7zuddsj63b0l6';//安全检验码
	// public $seller_email = 'mk@qingtajiao.com';//收款支付宝账号
	// public $partner      = '2088712582583250';//合作身份者id
	// public $key          = 'fo5v0t1uezebyzwysdv81o2s1cpuqbiw';//安全检验码
	public $sign_type    = 'MD5';//签名方式
	public $cacert_path  = '';//签名方式
	public $transport    = 'http';//访问模式
	public $is_debug     = false;//true为调试模式，价格会设置成0.01，false为非调试模式，价格按正常来
	public $logs_path    = '';

	public function __construct() {
        //导入支付宝alipay_notify包
		import("alipay_notify",'Public/Class/Pay/Alipay/lib/APP');
		//日志保存目录
		$this->logs_path = dirname(__FILE__).'/Logs/';
		if(file_exists($this->logs_path)==false){
			mkdir($this->logs_path,true);
		}
    }
	/**
	 * 平台商支付宝配置
	 */
	public function config(){
		//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
		//合作身份者id，以2088开头的16位纯数字
		$alipay_partner      = C('alipay_partner');
		$alipay_config['partner']      = $alipay_partner?$alipay_partner:$this->partner;
		$alipay_seller_email = C('alipay_seller_email');
		$alipay_config['seller_email'] = $alipay_seller_email?$alipay_seller_email:$this->seller_email;

		//商户的私钥（后缀是.pen）文件相对路径
		$alipay_config['private_key_path']    = dirname(__FILE__).'/key/app/rsa_private_key.pem';
		
		//支付宝公钥（后缀是.pen）文件相对路径
		$alipay_config['ali_public_key_path'] = dirname(__FILE__).'/key/app/alipay_public_key.pem';

		//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

		//签名方式 不需修改
		$alipay_config['sign_type']     = strtoupper('RSA');
		
		//字符编码格式 目前支持 gbk 或 utf-8
		$alipay_config['input_charset'] = strtolower('utf-8');

		//ca证书路径地址，用于curl中ssl校验
		//请保证cacert.pem文件在当前文件夹目录中
		$cacert_path                = dirname(__FILE__).'/alipay_cacert.pem';
		//访问模式,根据自己的服务器是否支持ssl访问，若支持请选择https；若不支持请选择http
		$alipay_config['transport'] = 'http';
		
		return $alipay_config;
	}
	/**
	 * 获取支付宝待签名
	 * @param  [type] $order_sn      订单号
	 * @param  [type] $amount        订单金额
	 * @param  [type] $order_title   订单标题
	 * @param  string $order_content 订单详情
	 */
	public function get_pay_sign($order_sn,$amount,$order_title,$order_content=''){
		//支付成功回调地址
		$notify_url = $this->notify_url ? $this->notify_url : U('alipay/notify_url');
		//获取支付配置信息
		$alipay_config = $this->config();
		//待签参数
		$str_for_sign = '_input_charset="utf-8"&'.
						'notify_url="'.urlencode($notify_url).'"&'.
						'service="mobile.securitypay.pay"&'.
						'partner="'.$alipay_config['partner'].'"&'.
						'seller_id="'.$alipay_config['seller_email'].'"&'.
						'payment_type="1"&'.
						'out_trade_no="'.$order_sn.'"&'.
						'subject="'.$order_title.'"&'.
						'body="'.$order_content.'"&'.
						'total_fee="'.$amount.'"';

		$sign = rsaSign($str_for_sign,$alipay_config['private_key_path']);	
		if($sign){
			 return $str_for_sign.'&sign="'.urlencode($sign).'"&sign_type="RSA"';
		}
		return false;
	}
}
?>